﻿using System;
using System.Web;
using System.Web.SessionState;
using System.Collections.Generic;
using System.Data;
using System.Web.Security;
using Gift.DAL;
using Gift.Model;

namespace WebSite.cn.ashx
{
    public class registerHandler : IHttpHandler, IRequiresSessionState
    {
        /// <summary>
        /// 您将需要在您网站的 web.config 文件中配置此处理程序，
        /// 并向 IIS 注册此处理程序，然后才能进行使用。有关详细信息，
        /// 请参见下面的链接: http://go.microsoft.com/?linkid=8101007
        /// </summary>
        #region IHttpHandler Members

        public bool IsReusable
        {
            // 如果无法为其他请求重用托管处理程序，则返回 false。
            // 如果按请求保留某些状态信息，则通常这将为 false。
            get { return true; }
        }

        public void ProcessRequest(HttpContext context)
        {
            if (context.Request["code"].ToLower() != context.Session["checkCode"].ToString())
            {
                context.Response.Write("1002");
                return;
            }

            DataTable table = SQLAccess.GreatDs("select * from DB_Member where memberlogin='" + re.replace(context.Request["userName"]) + "'").Tables[0];
            if (table.Rows.Count > 0)
            {
                context.Response.Write("1003");
                return;
            }
                table = SQLAccess.GreatDs("select * from DB_Member where memberlogin='" + re.replace(context.Request["email"]) + "'").Tables[0];
                if (table.Rows.Count > 0)
                {
                    context.Response.Write("1004");
                    return;
                }

                try
                {
                    SQLAccess.DoSql(string.Format("insert into DB_Member (memberlogin,memberpwd,email,updatetime,state,rankid) "
                                                    + " values ('{0}','{1}','{2}','{3}',{4},{5})"
                                                   , re.replace(context.Request["userName"])
                                                   , FormsAuthentication.HashPasswordForStoringInConfigFile(re.replace(context.Request["userPwd"]), "MD5")
                                                   , re.replace(context.Request["email"])
                                                   , DateTime.Now
                                                   , 1
                                                   , 1));
                    WebSite.login.usercenter(re.replace(context.Request["userName"]), FormsAuthentication.HashPasswordForStoringInConfigFile(re.replace(context.Request["userPwd"]), "MD5"), "0");

                    if (context.Request["action"] == "login")
                    {
                        context.Response.Write("1005");
                    }
                    else
                    {
                        context.Response.Write("1006");
                    }
                    
                }
                catch
                {
                    context.Response.Write("1001");
                }

        }

        #endregion
    }
}
